﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using KZ.Utilities;
using KZ.Express.H.ENT;
using KZ.Express.H.Presenter;

namespace KZ.Express.H
{
    public partial class ChangePasswordView : BaseView
    {
        public ChangePasswordView()
        {
            InitializeComponent();
            _presenter = new BasePresenter(this);
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                string msg = String.Empty;
                if (String.IsNullOrWhiteSpace(this.txtOldPassword.Text))
                    msg = "Bạn phải nhập mật khẩu cũ\n";
                if (String.IsNullOrWhiteSpace(this.txtNewPassword.Text))
                    msg += "Bạn phải nhập mật khẩu mới\n";
                else if (this.txtNewPassword.Text.Length < 6 || this.txtNewPassword.Text.Length > 50)
                    msg = "Độ dài mật khẩu từ 6 - 50 ký tự\n";
                else if (this.txtNewPassword.Text != this.txtConfirm.Text)
                    msg = "Xác nhận mật khẩu không chính xác\n";

                if (!String.IsNullOrWhiteSpace(msg))
                    throw new BusinessLogicException(msg);

                UserENT user = _presenter.LoadEntity<UserENT>(UserENT._USERID);
                if (user.Password != this.txtOldPassword.Text)
                    throw new BusinessLogicException("Mật khẩu cũ không chính xác");

                SearchCriteria search = new SearchCriteria();
                search.Add("UserID", UserENT._USERID);
                search.Add("Password", this.txtNewPassword.Text);

                _presenter.ExecuteNonQuery(UserENT.UpdatePasswordProcedure, search);

                DialogResult = DialogResult.Yes;
            }
            catch (BusinessLogicException ex)
            {
                ShowMessageBoxError(ex.Message);
            }
        }
    }
}
